/**
 * @Author: Jiang Zhongxun
 * @Date: 2024-10-04 20:32:42
 * @FilePath: /Socket/practiceProject/include/utils/utils.h
 * @Description: 工具接口
 */
#ifndef _UTILS_H_
#define _UTILS_H_

#include "../db/dbDefinition.h"
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

/**
 * 解析字符串函数，将输入的字符串按照特定规则解析，并将结果存入指定数组
 * 本函数的主要作用是解析一个字符数组(allbuf)，并将解析的结果存入另一个字符指针数组(result)。
 * 解析的规则是，当遇到'@'字符时，将其后面的字符串作为下一个解析出来的字符串。
 *
 * @param allbuf 输入的字符数组，包含待解析的字符串
 * @param result 输出的字符指针数组，用于存放解析后的各个字符串
 * @return int 返回值，0表示成功，-1表示失败(通常是因为输入参数为NULL)
 */
int parseStringUtil(char allbuf[], char *result[]);

/**
 * 获取当前时间日期的字符串
 * 格式为 YYYY-MM-DD HH:MM:SS
 *
 * @param null
 * @return 当前时间日期的字符串
 */
char *getCurrentDateTimeUtil(void);

/**
 * 记录日志到 SQLite3 数据库的 logInfo 表中
 *
 * @param db SQLite3数据库指针
 * @param logType 日志类型
 * @param message 日志信息
 * @return 成功返回0，失败返回非0的数
 */
int logToLogInfoTable(sqlite3 *db, LogType logType, char *message);

#endif
